// 按需导入 $http 对象
import {
	$http,
} from '@escook/request-miniprogram';
// 请求的根路径
$http.baseUrl = 'http://api-hmugo-web.itheima.net';

// 请求开始之前做一些事情
$http.beforeRequest = function (options) {
	// do somethimg...
	uni.showLoading({
		title: '数据加载中...',
	});
	// 判断请求的是否为有权限的 API 接口
	if (options.url.indexOf('/my/') !== -1) {
		// 为请求头添加身份认证字段
		options.header = {
			// 字段的值可以直接从 vuex 中进行获取
			Authorization: uni.getStorageSync('token'),
		};
	}
};

// 请求完成之后做一些事情
$http.afterRequest = function () {
	uni.hideLoading();
};


// #ifndef VUE3
import Vue from 'vue';
import App from './App';

// 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http;

uni.$showMsg = function (title = '数据请求失败', duration = 1500) {
	uni.showToast({
		title,
		duration,
		icon: 'none',
	});
};

Vue.config.productionTip = false;

App.mpType = 'app';

const app = new Vue({
	...App,
});
app.$mount();
// #endif

// #ifdef VUE3
import {
	createSSRApp,
} from 'vue';
import App from './App.vue';
import {
	createPinia,
} from 'pinia';

export function createApp() {
	const app = createSSRApp(App);
	const pinia = createPinia();
	// 挂载 pinia
	app.use(pinia);
	// 在 Vue 3 中同样将 $http 挂载到 uni 上
	uni.$http = $http;
	uni.$showMsg = function (title = '数据请求失败', duration = 1500) {
		uni.showToast({
			title,
			duration,
			icon: 'none',
		});
	};
	return {
		app,
	};
}
// #endif
